The present invention relates to enterprise systems, and more particularly to techniques for manipulating searchable data and semantic information associated with applications in an enterprise system.
Many businesses and other organizations use software applications and/or suites of such applications to organize their business affairs, track business performance, manage employee data and perform similar functions. These enterprise applications are often quite complex, relying on numerous database tables to store and manage data for virtually every aspect of an organization's business. Exemplary enterprise applications can include supply chain management (“SCM”) applications that manage raw materials, work-in-process and/or finished products, and coordinate with suppliers; customer relations management (“CRM”) applications that are used to track, store and/or manage customer information; financial applications that track and/or analyze the financial performance of the organization; human resources applications that provide management of the human resources functions of the organization, and other applications. In some cases, these applications are standalone applications; in other cases, a single business application or suite of applications might provide some or all such functionality. Specific, non-limiting examples of enterprise applications include JD Edwards EnterpriseOne, PeopleSoft Enterprise applications (including, for example, PeopleSoft Enterprise Student Administration), and the Oracle eBusiness Suite, all available from Oracle Corporation.
Enterprise applications typically store and process business data in one or more data stores. In one configuration, the data is stored in one or more tables of a database managed by a relational database management system (“RDBMS”) and maintained by the business application. Each enterprise application may use a separate data store, which may be an independent database or portion of a database. Thus, for example, where a business system includes a CRM application and an enterprise resource planning (“ERP”) application, the CRM application may use a data store separate from the ERP application. Each application typically maintains and manages the data stored in its data store.
A relational database typically is designed to reduce or minimize redundancy in stored data by structuring the database tables to store data in a normalized form. This can result in a single business object being stored across multiple database tables. The stored data also may include information describing semantic relationships among objects represented by the stored data. Structured queries may be used to extract data from the relevant tables for processing and/or presentation to an end user of the business system. However, data stored in relational databases typically may not be stored or directly accessible in a format conducive to text searching, presentation to end users, or other context-related manipulation. Further, merely converting the stored data into a format that is more conducive to searching may ignore or lose information describing semantic relationships within the data.
In some search regimes, a search engine typically matches terms in a search query to indexed searchable data. The search results typically reflect whether and how the searchable data matches the search terms. For example, a data source that matches all of the search terms may be considered a good match and provided as a search result, while a data source that matches few or no terms may be considered a poor match and provided as a poor search result, or not provided as a matching result at all. Although additional logic may be employed to match search terms, these searches are unable to identify or make use of semantic relationships that may be present among the indexed data.